Reducing virtual IP-address (VIP) failure detection time

ABSTRACT

Methods and systems are provided for global server load balancing in a communication network using a global site selector and an application control engine in communication with the global site selector, in which the application control engine notifies the global site selector in response to a state change for a virtual internet protocol (VIP) address. Keepalive methods generally rely on periodically polling VIP addresses to check whether they are in an ONLINE or OFFLINE state. A minimum interval between two keepalives can be as long as 40 seconds, during which, without a mechanism to reflect state change to the load balancer in real time, if a VIP address changes state (e.g., VIP address failure), a customer can experience network outage during the time interval. Embodiments provide a mechanism to reflect, in real time, the current VIP address state to a global server load balancer to reduce failure detection time.

TECHNICAL FIELD

The present disclosure generally relates to global server load balancingfor communication networks and, more particularly, to reducing virtualIP address failure detection time.

BACKGROUND

Business continuance and disaster recovery planning, once considered lowbusiness priorities, have recently received increased attention, in theform of information technology (IT) professionals' focus on deployingbusiness continuance and disaster-recovery network architectures thatcan withstand an array of disruptions ranging from catastrophic naturaldisasters, to acts of terrorism, to technical failures. To avoid costlydisruptions—and improve customer service—enterprises may turn tointelligent networking capabilities to distribute and load balance theircorporate data centers, where many of their core business applicationsreside. The intelligence now available in networking devices can inspectmany variables about the content of an internet protocol (IP) packet,and, based on the information, direct traffic to the best-available,least-loaded sites and servers that will provide the fastest—andbest—response.

A network using global server load balancing (GSLB) may direct users tothe most appropriate data centers for their requests, improving theend-user experience. For example, a software manufacturer may offer itsproduct via download from its Internet site but then the softwaremanufacturer encounters customer satisfaction issues when download timeis too long. An intelligent GSLB solution can determine which of themanufacturer's multiple data centers, located in disparate locationswith mirrored content, is closest to the requesting client. A client inAsia can then receive content from a data center in Asia; a client inEurope can receive content from Europe; and a client in North Americacan receive content from North America. The result can be drasticallyreduced wait times for software downloads and increased customersatisfaction. In addition, an intelligent GSLB solution that can pointthe client to a local data center for content requests, instead of onelocated remotely, can save costly bandwidth and reduce the need forupgrades, saving upgrade expenses.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram illustrating a communication networkimplementing global server load balancing in accordance with one or moreembodiments.

FIG. 2 is a system diagram illustrating a portion of the communicationsystem of FIG. 1, in accordance with an embodiment.

FIG. 3 is a process flow diagram illustrating a method in accordancewith one or more embodiments.

DESCRIPTION Overview

In accordance with embodiments of the present invention, methods andsystems are provided for global server load balancing in a communicationnetwork using a global site selector and an application control enginein communication with the global site selector, in which the applicationcontrol engine notifies the global site selector in response to a statechange for a virtual internet protocol (VIP) address.

Description of Example Embodiments

In accordance with embodiments of the present invention, methods andsystems provide a VIP address state notification mechanism to reflect,in real time, the current VIP address state to a global server loadbalancer to reduce failure detection time for global server loadbalancing (GSLB). Failure detection time is a basic issue related toglobal server load balancing and refers to the amount of time from whena VIP address goes down (or enters an OFFLINE state) until the globalserver load balancer “knows” about the VIP address being down and stopsreferring network traffic to that VIP address. In one or moreembodiments, global server load balancing in a communication network isperformed by a global site selector (GSS) and an application controlengine (ACE) in communication with the global site selector, in whichthe application control engine notifies the global site selector inresponse to a state change for a virtual internet protocol (VIP)address.

A keepalive, as generally known in the art, is a message sent by onedevice to another to check that the link between the two is operating orto prevent the link from being broken. One of the basic issues withglobal server load balancing in general are keepalive methods that relyon periodically polling VIP addresses for their status to check whetherthey are in an ONLINE state or OFFLINE state, causing the potential fora customer to experience network outages in the interval betweenkeepalives. For example, a minimum interval between two keepalives canlast for several seconds, during which, without a mechanism to reflectthe state change on the global site selector in real time, if a VIPaddress changes state (e.g., a VIP address failure), a customer canexperience a network outage during the time interval. To address theissue, one or more embodiments provide a VIP address state notificationmechanism to reflect, in real time, the current VIP address state to aglobal server load balancer to reduce failure detection time. Forexample, an application control engine may send a notification to aglobal site selector of a global server load balancer as soon as VIPaddress state changes from ONLINE to OFFLINE and vice-versa. Thus, inone or more embodiments, the customer may not experience network outagecaused by minimum keepalive intervals on the global site selector. Inaddition, the VIP address state notification mechanism can, in someimplementations, reduce keepalive processing so that a keepalive engineof a global site selector has a reduced processing load.

FIG. 1 illustrates a system 100 in accordance with one or moreembodiments for performing global server load balancing in acommunication network. Global server load balancing (using, for example,global site selectors 220 in accordance with one or more embodiments)can offload the website selection process from the domain name system(DNS) infrastructure (including, e.g., client name server (D-proxy) 210;DNS name servers 215, DNS global control plane 216). In the process ofglobal server load balancing, global site selectors 220 may monitor theload and health of multiple server load balancers 250, each hostingmultiple VIP addresses. A virtual IP address (VIP address) may bedescribed as an IP address that is not connected to a specific computeror network interface card (NIC) on a computer. Incoming packets sent tothe VIP address may be redirected to physical network interfaces and sothat a VIP address can be shared among multiple domain names or multipleservers. A virtual IP address may eliminate a host's dependency uponindividual network interfaces so that a VIP address may still beavailable if a computer or NIC fails, because an alternative computer orNIC may reply to connections. Thus, VIPs are extensively used forconnection redundancy and provide a basic tool for global server loadbalancing.

Server load balancers 250 may be co-located at a data center, as seen inFIG. 1, or may be located at remote and disparate data centers, also asseen in FIG. 1. As described in the following example, with reference toitems 101 to 106, global site selectors 220 may interact with the client(e.g., client 200) in the website selection process. In one or moreembodiments, a proximity deployment may be used for global server loadbalancing to route the client to the “closest” data center to achievebetter customer Web experience and save expensive wide-area bandwidth. Aproximity deployment for global server load balancing may be criticalfor applications that involve the transfer of large volumes of data,require a global presence, or rely on real-time interaction with remoteusers. Global site selectors, application control engines, server loadbalancers, task managers, and other described modules and functions maybe implemented using hardware, or a combination of hardware withfirmware, software, or both.

A user of a client 200 (e.g., a client device or a processor running aclient application) may want to access an application or website at, forexample, ABC.com. FIG. 1 illustrates that client 200 may include varioustypes of client, including, for example, a mobile device 201, a fixedwireless device 202, a cable client 203, a digital subscriber line (DSL)client 204, a dedicated asynchronous transfer mode (ATM) frame relay205, or integrated services digital network (ISDN) 206. The user ofclient 200 may initiate a DNS request 101, for example, by entering alink, such as “www.ABC.com”, into a web browser running on the client200. The application or website for ABC.com may be supported at a threedifferent data centers, e.g., data center 1, data center 2, and datacenter 3, as seen in FIG. 1.

DNS request 101 may be processed by the DNS global control plane 216infrastructure so that a DNS request 102 arrives at a global siteselector 220. For example, the DNS request 101 may be sent to a localclient name server (D-proxy) 210. The local D-proxy 210 may not have anIP address for www.ABC.com, so D-proxy 210 may send a query (DNSrequest) 102 to a DNS name server 215. The DNS name server 215 canrespond to the DNS request 102 by sending it on, e.g., forwarding it, toa global site selector 220. A typical DNS name server cannot perform thefollowing processes needed for global server load balancing, e.g., thesite selection process: 1) determine if the devices within the datacenter are available or unavailable; 2) determine if the server withinthe data center is overloaded; 3) determine which server load balanceris the best performing; 4) determine which data center is closer to theclient that is requesting content; 5) intelligently manage the clienttraffic flow to each data center; 6) react quickly to changes inavailability or load on the devices within the data center; 7) providedata center persistence; and 8) give conditional responses, such as“data center one is unavailable and data center two is overloaded, sosend all traffic to third data center”.

A global site selector 220 receiving the DNS request 102 may offload thesite-selection process from the DNS global control plane 216, forexample, offloads DNS servers by taking over the domain resolutionprocess and responding to thousands of requests (e.g., DNS request 102)per second. In the site selection process, global site selector 220 maysend request 103 to a data center and site selection may be based on theload and health information from the data centers and sites, inconjunction, for example, with website provider-controlledload-balancing algorithms. The global site selector 220, in real time,may select a data center that is available and not overloaded based oninformation received from application control engines 260. Each datacenter (data centers 1, 2, and 3 in the example) may have one or moreapplication control engines 260 executing, for example, on a loadbalancing server 250 or servers 250 and performing load balancingfunctions for its respective data center. Thus, each application controlengine may be in communication with one or more global site selectorsand, conversely, each global site selector may be in communication withone or more application control engines. Such communication betweenglobal site selectors 220 and application control engines 260 may becarried on using layer 3 (referring to the Open System Interconnection(OSI) model) communications 270 (also referred to as socket layercommunications 270, see FIG. 2) and any suitable communication protocolsuch as UDP, ICMP, NS, KALAP (a Cisco, Inc. proprietary protocol), TCP,HTTP, or CRA, for example.

A global site selector 220 may send response 104 to D-proxy 210.Response 104 may include an IP address for a “best” server load balancer250 at specific data center, which for purposes of this illustrativeexample, may be taken to be server 250 a at data center 2. D-proxy 210may send the IP address in response 105 to client 200, and a browser,for example, running on client 200 may process this IP address. When thetransfer for the DNS control plane 216 is complete, the client 200 maybe directed, using layer 3 communications 106, to the server loadbalancer 250 a at data center 2 by the IP control and forwarding plane217.

In selecting a data center or website based on information gathered, forexample, from load balancing servers 250 or application control engines260, a global site selector 220 may perform global server load balancingaccording to one or more of the following methods, which serve asexamples and not limitations: 1) ordered list—use the next VIP addresswhen all previous VIP addresses are overloaded or down; 2) static basedon client's DNS address—maps the IP address of the client's DNS toavailable VIP addresses; 3) round robin—cycles through available VIPaddresses in order; 4) weighted round robin—weighting causes repeat hits(up to 10, for example) to a VIP address; 5) least-loaded—communicatesthrough a uniform datagram protocol (UDP) the least number ofconnections or least loaded server (e.g., load can be calculated basedon how fast a server responds to a transmission control protocol (TCP)connection request); 6) source address and domain hash—the IP address ofthe client's DNS proxy and domain used always matches the same client tothe same VIP address; 7) DNS race—initiates a race of A-record responsesto the client's name server so as to estimate proximity without probing;and 8) drop—silently discards request.

Referring now to FIG. 2, a global site selector 220 and an applicationcontrol engine 260, in communication with global site selector 220, forperforming global server load balancing, as described with reference toFIG. 1, are shown in more detail. In one embodiment a communication 271between the application control engine 260 and the global site selector220 can replace the keepalive process operated by global site selector220 with application control engine 260. In another embodiment,communication 271 may augment the keepalive process operated by globalsite selector 220 with application control engine 260.

In general, a keepalive performs a specific interaction, often referredto as “handshake,” between two devices using a commonly supportedprotocol. A keepalive can test, for example, if a specific protocolstack on a networking device, such as a server, router, or switch, isfunctioning properly, using the following logic: a successful handshakemeans the target device is available, active, and able to receivetraffic; a failed handshake means the target device is unavailable andinactive. This technique may allow the device issuing a keepalive (e.g.,global site selector 220) to understand the operational status (e.g.,whether a particular VIP address is available or in an ONLINE state) ofthe device responding to the keepalive (e.g., application control engine260). Thus, a keepalive process may be an information collectionmechanism of a global server load balancing process.

As shown in the example illustrated in FIG. 2, a keepalive process maybe executed by a keepalive engine (KALE) 232, which may be implementedas hardware or a combination of hardware and firmware or softwareexecuting on global site selector 220. KALE 232 may execute undercontrol or direction of a director process 224 (also referred to as aselector manager or keepalive (KAL) manager). The director process 224,may, for example, execute one or more global server load balancingmethods (e.g., “ordered list”, “static”, “round robin”, and so on) forproviding a “best” VIP address to a client 200 as described above withreference to FIG. 1. An incoming client 200 request 102 may produce oneof an add, remove, or update keepalive event 225 that is passed to KALE232, KALE 232 may decide what the type or protocol is for event 225 andpass event 225 to the appropriate task manager 226. Each task manager226 may manage a list of tasks 228 so that global site selector 220sends a keepalive request 272 to application control engine 260 to getthe status of a VIP address corresponding to the particular task 228sending the keepalive request 272. (Request 272 and reply 274 each maybe instances of layer 3 or socket layer communications 270.) The type orprotocol for the keepalive may be, for example, any of KAL-AP, HTTP,ICMP, NS, CRA, or TCP.

KAL-AP—Extracts both load and availability from the server loadbalancers, e.g., server load balancers 250. When a detailed query (e.g.,keepalive request 272) is sent to the server load balancers 250, anapplication control engine (ACE) 260 may respond (e.g., keepaliveresponse 274) with information about a hosted domain name, hosted VIPaddress, or a configured tag on a content rule.

HTTP—The keepalive engine 232 may send a keepalive request 272 to aserver 252 and check for a “200 OK.” If the global site selector 220receives a “200 OK,” then it may direct traffic to the VIP addresssupporting that server.

ICMP—A simple layer 3 ping that shows the status of a given device basedon connectivity to the network can be used with any device that canrespond to a ping request. If there is no response, the ping will besent once every five seconds up to three times. If there is still noresponse, the device (VIP address or real server) may be consideredOFFLINE or to be in an OFFLINE state or unavailable.

NS-name server query—A simple DNS request May be sent to a host (nameserver, mail server, or other) to receive a resolved domain name toprove the “aliveness” of the system. In this case, the global siteselector 220 may send a generic domain name, probing for a failureresponse, which proves that the DNS server is “alive”, e.g., in anONLINE state or available.

CRA (Content Routing Agent)—the global site selector 220 may send aUDP-based keepalive request 272 to port 1304 to retrieve round-triptimes between the global site selector 220 and an agent (e.g., a serverload balancer 250).

TCP—The TCP keepalive may be used when a global site selector 220 answerto be tested is transmitted to global server load balancing devicesother than a server load balancer 250 including global server loadbalancing remote devices such as webservers, local directors, wirelessaccess point (WAP) gateways, and other devices that can be checked usinga TCP keepalive. The TCP keepalive may initiate a TCP connection to theremote device by performing a three-way handshake sequence. The TCPtermination connection method can be graceful (FIN) or reset (RST).

Each type of global site selector keepalive described above may supporta fast or standard keepalive rate. The fast keepalive rate can be asfast as four seconds, while the standard keepalive rate may be 40 to 255seconds. For the fast keepalive rate, the number of retries for theICMP, TCP, HTTP HEAD, and KAL-AP keepalive types can be adjusted, whichadjusts the VIP failure detection time determined by the global siteselector using keepalives. Thus, for standard type keepalive, theminimum interval between keepalives may be 40 seconds, so after each 40seconds, the keepalive status (e.g., state of a VIP address being eitherONLINE or OFFLINE) may be checked and updated based upon the reply 274.Thus, in a situation where a VIP address goes OFFLINE almost immediatelyafter the most recent keepalive check, a network outage may beexperienced for that VIP address lasting almost the entire 40 seconds.

To address such a situation (e.g., to prevent the possibility of suchlong network outages) an additional load and health informationmonitoring mechanism may be provided between, for example, a server loadbalancer 250 and a global site selector 220.

In one embodiment, an application control engine 260, executing on aserver load balancer 250, may perform a number of server load balancingtasks and may use methods similar to those described above used byglobal site selector 220 for global server load balancing. The serverload balancing and other management tasks (such as hosting VIPaddresses) may be performed by a GSLB process 264, which may beimplemented using hardware, or a combination of hardware with firmware,software, or both. A configuration manager process 266 may be used whilecreating a VIP address on application control engine 260 to specify aglobal site selector 220 IP address for VIP state change notification.For example, specifying such an IP address of global site selector 220can enable sending a notification message 271 from a socket layerinterface 268 to KALE 232 of global site selector 220. So when ever aparticular VIP address goes ONLINE or OFFLINE, e.g., changes state, onthe application control engine 260, application control engine 260 maynotify global site selector 220 immediately in response to the change instate, in contrast, for example, to keepalive replies 274 which onlynotify global site selector 220 of the current state at periodicintervals, from which the global site selector 220 must infer a changeof state by keeping track of the state.

Also, by sending the notification message 271 directly in response to achange in state of the VIP address, the VIP address status reflected onthe global site selector 220 will always be current, e.g., the reflectedstatus at the global site selector 220 changes in real time following,or tracking in real time, the VIP address status known at theapplication control engine 260. The feature of instant response to VIPaddress status changes can be implemented in such a way that a user(e.g., website operator or service provider) has flexibility to enableboth keepalive (request 272, reply 274) and VIP status notification(notification messages 271) from application control engine 260 or haveonly one of them (either one) enabled. For example, configurationmanager 266 may be used to set such an option.

FIG. 3 illustrates a method 300 in accordance with one or moreembodiments. At step 301, method 300 may perform global server loadbalancing according to the availability of a virtual internet protocol(VIP) address. For example, availability may be indicated by a VIPaddress state, such as ONLINE or OFFLINE and the global server loadbalancing may be performed by a hardware switching unit, such as aglobal site selector 220. At step 302, method 300 may modify the globalserver load balancing in response to a state change for the VIP address.For example, a mechanism may be provided that notifies the performer ofthe global server load balancing, e.g., a global site selector 220, inreal time and in direct response to the VIP address state changing; forexample, a notification message 271 may be sent as shown in FIG. 2.Then, method 300 may modify the global server load balancing in responseto message 271, for example, by redirecting traffic away from the VIPaddress if its state change is from ONLINE to OFFLINE or, for example,by redirecting traffic to the VIP address if its state change is fromOFFLINE to ONLINE. At step 304, method 300 may also periodically pollthe VIP address (e.g., by sending keepalive messages) and in response tothe state of the VIP address being ONLINE, use the VIP address for loadbalancing, e.g., redirect traffic to the VIP address; and may alsoperiodically poll the VIP address and in response to the state beingOFFLINE, not use the VIP address for load balancing, e.g., redirectnetwork traffic away from the VIP address. Either or both of steps 302and 304 may be performed by method 300 without or along with performingthe other step. Also, both steps 302 and 304 may be performedconcurrently and independently of one another.

Therefore, it should be understood that the invention may be practicedwith modification and alteration within the spirit and scope of theappended claims. The description is not intended to be exhaustive or tolimit the invention to the precise form disclosed. It should beunderstood that the invention may be practiced with modification andalteration and that the invention be limited only by the claims and theequivalents thereof.

What is claimed is:
 1. A system comprising: a plurality of hardwareprocessors, wherein at least one of the plurality of hardware processorsis configured to communicate over a network with a plurality of servers;a global site selector, executed by at least one of the plurality ofhardware processors, wherein: the global site selector performs a globalserver load balancing to direct network traffic among a plurality ofvirtual internet protocol (VIP) addresses; the global site selectorincludes a keepalive engine to periodically poll one or more of the VIPaddresses hosted on an application control engine to check whether eachVIP address is in an ONLINE state or an OFFLINE state, wherein thekeepalive engine of the global site selector sends one or more keepaliverequests and waits for a keepalive response to the keepalive request upto a minimum keepalive interval; and the global site selector receives astate change information included in a VIP status notification messagein response to a state change of one of the VIP addresses, in additionto and distinct from the keepalive response, wherein the keepaliveresponse specifies only the ONLINE state or the OFFLINE state,respectively, the received state change information is received in lessthan the minimum keepalive interval between the periodic polls, and thestate change information is configured to specify a state change fromeither ONLINE to OFFLINE or OFFLINE to ONLINE; and the applicationcontrol engine, executed by at least one of the plurality of hardwareprocessors and in communication with the global site selector, includinga configuration manager wherein: the configuration manager, concurrentlywith creating a VIP address of the one or more of the VIP addresseshosted on the application control engine, specifies a global siteselector IP address through which the application control engine sendsto the global site selector the VIP status notification message for theVIP address, wherein the VIP status notification message is distinctfrom the keepalive response and provides the state change information;and the application control engine sends, independently of waiting forthe minimum keepalive interval between keepalive requests, the VIPstatus notification message to the global site selector IP address, indirect response to the state change information for the VIP address;wherein the global site selector modifies the global server loadbalancing immediately in response to the VIP status notificationmessage, and without waiting for the keepalive response or the minimumkeepalive interval, by: redirecting traffic away from the VIP address ifthe state change transitions from the ONLINE state to the OFFLINE state,and directing traffic to the VIP address if the state change transitionsfrom the OFFLINE state to the ONLINE state.
 2. The system of claim 1,wherein: the application control engine notifies the global siteselector in response to a VIP address state changing from ONLINE toOFFLINE.
 3. The system of claim 1, wherein: the application controlengine notifies the keepalive engine of the state change of the VIPaddress.
 4. The system of claim 1, wherein: the keepalive engineperiodically pings the application control engine regarding the state ofthe VIP address; and the application control engine notifies thekeepalive engine regarding a VIP address state change independently ofanswering pings regarding the state of the VIP address.
 5. The system ofclaim 1, wherein the global site selector: processes a domain namesystem (DNS) request; performs a keepalive method configured to find asite with a VIP address in an ONLINE state; and returns the VIP addressfor the site in response to the request.
 6. The system of claim 1,wherein the application control engine: hosts a plurality of VIPaddresses, wherein: the application control engine keeps track of astate of each VIP address, wherein: a set of possible states of each VIPaddress includes an ONLINE state and an OFFLINE state.
 7. A methodcomprising: performing, by a global site selector, global server loadbalancing to direct network traffic among a plurality of virtualinternet protocol (VIP) addresses; periodically polling by a keepaliveengine of the global site selector one or more of the VIP addresseshosted on an application control engine to check whether each VIPaddress is in an ONLINE state or an OFFLINE state, wherein the keepaliveengine of the global site selector sends one or more keepalive requestsand waits for a keepalive response to the keepalive request up to aminimum keepalive interval; receiving a state change informationspecifying a state change from ONLINE to OFFLINE by the global siteselector, wherein: the received state change information is included ina VIP status notification message in response to a state change of a VIPaddress of the one or more of the VIP addresses hosted on theapplication control engine, the received state change information is inaddition to and distinct from the keepalive response, the keepaliveresponse specifies only the ONLINE state or the OFFLINE state,respectively, the received state change information is received in lessthan the minimum keepalive interval between the periodic polls, and thestate change information is configured to specify a state change fromeither ONLINE to OFFLINE or OFFLINE to ONLINE; concurrently withcreating the VIP address of the one or more of the VIP addresses hostedon the application control engine, specifying, by a configurationmanager of the application control engine, a global site selector IPaddress through which the application control engine sends to the globalsite selector the VIP status notification message for the VIP address,wherein the VIP status notification message is distinct from thekeepalive response and provides the state change information; sending,by the application control engine independently of waiting for theminimum keepalive interval between keepalive requests, the VIP statusnotification message to the global site selector IP address, in directresponse to the state change information for the VIP address; andmodifying, by the global site selector, the global server load balancingin immediate response to the VIP status notification message including areceived state change information that specifies a state change fromONLINE to OFFLINE, and without waiting for the keepalive response or theminimum keepalive interval, by redirecting traffic away from the VIPaddress.
 8. The method of claim 7, wherein modifying the global serverload balancing in response to the VIP status notification messagefurther comprises: in response to a subsequent VIP status notificationmessage including a received state change information that specifies astate change from OFFLINE to ONLINE, directing traffic to the VIPaddress.
 9. The method of claim 7, further comprising: periodicallypolling the VIP address and in response to a state of the VIP addressbeing ONLINE, using the VIP address for load balancing; and periodicallypolling the VIP address and in response to the state of the VIP addressbeing OFFLINE, directing network traffic away from the VIP address. 10.The method of claim 7, further comprising: periodically polling the VIPaddress and in response to a state of the VIP address being OFFLINE,directing network traffic away from the VIP address; and responding,independently of the periodic polling, to the VIP address state changingfrom ONLINE to OFFLINE and, in response to the state change, directingnetwork traffic away from the VIP address.
 11. The method of claim 7,further comprising: processing a domain name system (DNS) request;performing a keepalive method configured to find a site with a VIPaddress in an ONLINE state, and returning the VIP address for the sitein response to the request.
 12. The method of claim 7, furthercomprising: hosting a plurality of VIP addresses including: keepingtrack of a state of each VIP address, wherein a set of possible statesof each VIP address includes an ONLINE state and an OFFLINE state.
 13. Acomputer program product comprising a non-transitory computer readablemedium having computer readable and executable code for instructing aprocessor to perform a method, the method comprising: performing, by aglobal site selector, global server load balancing to direct networktraffic among a plurality of virtual internet protocol (VIP) addresses;periodically polling by a keepalive engine of the global site selectorone or more of the VIP addresses hosted on an application control engineto check whether each VIP address is in an ONLINE state or an OFFLINEstate, wherein the keepalive engine of the global site selector sendsone or more keepalive requests and waits for a keepalive response to thekeepalive request up to a minimum keepalive interval; receiving a statechange information specifying a state change from ONLINE to OFFLINE bythe global site selector, wherein: the received state change informationis included in a VIP status notification message in response to a statechange of a VIP address of the one or more of the VIP addresses hostedon the application control engine, the received state change informationis in addition to and distinct from the keepalive response, thekeepalive response specifies only the ONLINE state or the OFFLINE state,respectively, and the received state change information is received inless than the minimum keepalive interval between the periodic polls, andthe state change information is configured to specify a state changefrom either ONLINE to OFFLINE or OFFLINE to ONLINE; concurrently withcreating the VIP address of the one or more of the VIP addresses hostedon the application control engine, specifying, by a configurationmanager of the application control engine, a global site selector IPaddress through which the application control engine sends to the globalsite selector the VIP status notification message for the VIP address,wherein the VIP status notification message is distinct from thekeepalive response and provides the state change information; sending,by the application control engine independently of waiting for theminimum keepalive interval between keepalive requests, the VIP statusnotification message to the global site selector IP address, in directresponse to the state change information for the VIP address; andmodifying, by the global site selector, the global server load balancingin immediate response to the VIP status notification message including areceived state change information that specifies a state change fromONLINE to OFFLINE, and without waiting for the keepalive response or theminimum keepalive interval, by redirecting traffic away from the VIPaddress.
 14. The computer program product of claim 13, wherein modifyingthe global server load balancing in response to the VIP statusnotification message further comprises: in response to a subsequent VIPstatus notification message including a received state changeinformation that specifies a state change from OFFLINE to ONLINE,directing network traffic to the VIP address.
 15. The computer programproduct of claim 13, wherein the method further comprises: periodicallypolling the VIP address and, in response to the VIP address being in theOFFLINE state, directing network traffic away from the VIP address; andresponding, independently of the periodic polling, to the VIP addresschanging from the ONLINE state to the OFFLINE state by directing networktraffic away from the VIP address.
 16. The computer program product ofclaim 13, wherein the method further comprises: processing a domain namesystem (DNS) request; performing a keepalive method configured to find asite with a VIP address in an ONLINE state, and returning the VIPaddress for the site in response to the request.
 17. The computerprogram product of claim 13, wherein the method further comprises:hosting a plurality of VIP addresses including: keeping track of a stateof each VIP address, wherein a set of possible states of each VIPaddress includes an ONLINE state and an OFFLINE state.